package com.gosling.cloudspace.common.entity.pojo;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.gosling.cloudspace.common.annotation.DicZero;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.ToString;

import java.io.Serializable;
import java.util.Date;

/**
 * @email 1793327033@qq.com
 * @classname UserInfoPO
 * @author: osc_lihonglin
 * @date: 2021/6/24 9:44
 */
@Data
@TableName("user_info")
@ToString
public class UserInfoPO implements Serializable {

    @TableId(value = "id",type = IdType.INPUT)
    private Long id;

    @TableField("user_id")
    @DicZero(dictionary = "1,2,3", type = DicZero.REMOVE_ZERO)
    private String userId;

    @ApiModelProperty("盐：用于密码加密")
    @TableField("salt")
    private String salt;

    @ApiModelProperty("国家")
    @TableField("country")
    private String country;

    @ApiModelProperty("城市")
    @TableField("city")
    private String city;

    @ApiModelProperty("姓名")
    @TableField("name")
    private String name;

    @ApiModelProperty("登录用户名")
    @TableField("username")
    private String username;

    @ApiModelProperty("密码")
    @TableField("password")
    private String password;

    @ApiModelProperty("手机号")
    @TableField("phone")
    private String phone;

    @ApiModelProperty("头像")
    @TableField("image")
    private String image;

    @ApiModelProperty("性别")
    @TableField("sex")
    private String sex;

    @ApiModelProperty("是否实名认证，0-否 1-是")
    @TableField("is_certification")
    private String isCertification;

    @ApiModelProperty("是否身份认证，0-否 1-是")
    @TableField("is_identity_authentication")
    private String isIdentityAuthentication;

    /**
     * @see com.gosling.cloudspace.common.constants.UserLoginStatusEnum
     */
    @ApiModelProperty("登录状态，online-正常;lock-锁定;logout-退出")
    @TableField("status")
    private String status;

    @ApiModelProperty("标记，0-管理员 1-普通用户")
    @TableField("flag")
    private String flag;

    @ApiModelProperty("个性签名")
    @TableField("personal_signature")
    private String personalSignature;

    @ApiModelProperty("粉丝数量")
    @TableField("fan_num")
    private String fanNum;

    @ApiModelProperty("关注数量")
    @TableField("follow_num")
    private String followNum;

    @ApiModelProperty("职业")
    @TableField("job")
    private String job;

    @ApiModelProperty("设备唯一标识")
    @TableField("equipment_id")
    private String equipmentId;

    @ApiModelProperty("注册时间")
    @TableField("create_time")
    private Date createTime;

    @ApiModelProperty("更新时间")
    @TableField("update_time")
    private Date updateTime;

}
